'''小青蛙住在—条河边,它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。
河里的石头排成了—条直线,小青蛙每次跳跃必须落在一块石头或者岸上。不过,每块石头有一个高度,每次小青蛙从一块石头起跳,这块石头的高度就会下降1,当石头的高度下降到0时小青蛙不能再跳到这块石头上(某次跳跃后使石头高度下降到0是允许的)。
小青蛙一共需要去学校上a天课,所以它需要往返2a 次。当小青蛙具有一个跳跃能力y 时,它能跳不超过g的距离。
请问小青蛙的跳跃能力至少是多少才能用这些石头上完α 次课。
输入格式
输入的第一行包含两个整数n, c,分别表示河的宽度和小青蛙需要去学校的天数。请注意2c才是实际过河的次数。
第二行包含n―1个非负整数H1, H2,……- , Hn-1,其中Hi>0表示在河中与小青蛙的家相距i的地方有一块高度为H,的石头,H=0表示这个位置没有石头。
输出格式
输出—行,包含一个整数,表示小青蛙需要的最低跳跃能力。
样例输入
5 1
1 0 1 0
样例输出
4'''
代码；
def check(d):
    for i in range(mid,n):    # 遍历以i-mid为起点的每一个区间
        if sum[i]-sum[i-mid]<2*x: # 若存在区间长度小于2x
            return 0
    return 1

n,x=map(int,input().split())
# 记录石头的高度
s_high=list(map(int,input().split()))
# 记录区间石头的高度和 起点高度和为0
sum=[0,s_high[0]]
for i in range(1,len(s_high)):
    sum.append(s_high[i]+sum[i])

# 二分法
l,r=1,n # 跳跃能力区间
while l<r:
    mid=l+(r-l)//2
    if check(mid):
        r=mid # 能跳过去 减少跳跃能力
    else:
        l=mid+1 # 跳不过去 增加跳跃能力
print(r)